package com.hkts.management.model.PO;


import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hkts.management.model.enums.OrderTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data
@TableName(value = "hkts_order")
@ApiModel(value = "订单")
public class OrderAndContract extends Model<OrderAndContract> {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键id")
    private String id;
    /**
     * 货物信息id
     */
    @ApiModelProperty(value = "货物信息id")
    private String cargoId;
    /**
     * 司机userid
     */
    @ApiModelProperty(value = "司机userid")
    private String driverId;
    /**
     *
     */
    @ApiModelProperty(value = "货主id")
    private String shipper;
    /**
     * 订单状态
     */
    @ApiModelProperty(value = "订单状态")
    private OrderTypeEnum orderStatus;
    /**
     * 订单子状态
     */
    @ApiModelProperty(value = "订单子状态")
    private Integer orderSubstate;
    /**
     * 订单状态
     */
    @ApiModelProperty(value = "货主订单状态")
    private OrderTypeEnum shipperOrderStatus;
    /**
     * 订单子状态
     */
    @ApiModelProperty(value = "货主订单子状态")
    private Integer shipperOrderSubstate;
    /**
     * 运费支付单号
     */
    @ApiModelProperty(value = "运费支付单号")
    private String payTransport;
    /**
     * 运费支付支付状态
     */
    @ApiModelProperty(value = "运费支付支付状态")
    private Integer payTransportStatus;
    /**
     * 快递单号
     */
    private String courierCode;
    /**
     * 快递公司编号
     */
    private String courierCompanyCode;
    /**
     * 报名id
     */
    @ApiModelProperty(value = "报名id")
    private String applyId;

    /**
     * 快递公司
     */
    private String courierCompany;
    /**
     * 是否邮寄回单
     */
    @ApiModelProperty(value = "是否邮寄回单")
    private Integer isReceipt;
    /**
     * 出发地详细地址
     */
    @ApiModelProperty(value = "出发地title")
    private String startAddress;
    /**
     * 出发地详细地址
     */
    @ApiModelProperty(value = "目的地title")
    private String endAddress;
    /**
     * 添加时间
     */
    @ApiModelProperty(value = "添加时间")
    private LocalDateTime createTime;
    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    private LocalDateTime updateTime;

    @ApiModelProperty(value = "合同主键id")
    private String contractId;
    /**
     * 运费
     */
    @ApiModelProperty(value = "运费")
    private BigDecimal transportPrice;
    /**
     * 付费期限
     */
    @ApiModelProperty(value = "付费期限")
    private Integer payTime;
    /**
     * 装货时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "装货时间")
    private LocalDateTime loadingTime;
    /**
     * 装货时间小时
     */
    @ApiModelProperty(value = "装货时间小时")
    private Integer loadingTimeHours;
    /**
     * 卸货时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "卸货时间")
    private LocalDateTime unloadingTime;
    /**
     * 卸货时间
     */
    @ApiModelProperty(value = "卸货时间")
    private Integer unloadingTimeHours;
    /**
     * 出发地省市区
     */
    @ApiModelProperty(value = "出发地省市区")
    private String startArea;
    /**
     * 出发地详细地址
     */
    @ApiModelProperty(value = "出发地详细地址")
    private String startAddressDetail;
    /**
     * 目的地省市区
     */
    @ApiModelProperty(value = "目的地省市区")
    private String endArea;
    /**
     * 目的地详细地址
     */
    @ApiModelProperty(value = "目的地详细地址")
    private String endAddressDetail;
    /**
     * 出发地经度
     */
    @ApiModelProperty(value = "出发地经度")
    private BigDecimal startLon;
    /**
     * 出发地纬度
     */
    @ApiModelProperty(value = "出发地纬度")
    private BigDecimal startLat;
    /**
     * 目的地经度
     */
    @ApiModelProperty(value = "目的地经度")
    private BigDecimal endLon;
    /**
     * 目的地纬度
     */
    @ApiModelProperty(value = "目的地纬度")
    private BigDecimal endLat;
    /**
     * 货物名称
     */
    @ApiModelProperty(value = "货物名称")
    private String cargoName;
    /**
     * 货物重量
     */
    @ApiModelProperty(value = "货物重量")
    private BigDecimal cargoWeight;
    /**
     * 货物单位
     */
    @ApiModelProperty(value = "货物单位")
    private String cargoUnit;
    /**
     * 收款人
     */
    @ApiModelProperty(value = "收款人")
    private String payee;
    /**
     * 收款银行
     */
    @ApiModelProperty(value = "收款银行")
    private String collectingBank;
    /**
     * 银行支行名称
     */
    @ApiModelProperty(value = "银行支行名称")
    private String bankName;
    /**
     * 银行卡号
     */
    @ApiModelProperty(value = "银行卡号")
    private String bankCode;
    /**
     * 承运车牌
     */
    @ApiModelProperty(value = "承运车牌")
    private String carrierPlate;
    /**
     * 补充约定
     */
    @ApiModelProperty(value = "补充约定")
    private String supplementAgree;
    /**
     * 合同状态
     */
    @ApiModelProperty(value = "合同状态")
    private Integer contractStatus;


}
